package soa;

import be.Contraste;
import be.RespuestaSW;
import be.Sincronizacion;
import be.VisitaProgramada;
import be.Zona;
import gui.LstMenu;
import javax.microedition.lcdui.Displayable;
import midlet.MidletCielsa;
import rms.ContrasteRMS;

/**
 *
 * @author Dikas
 */
public class SWSincronizacion extends ServicioWeb{

    public SWSincronizacion(String url, String[][] entradas, MidletCielsa midlet, Displayable previousDisplayable) {
        super(url, entradas, midlet, previousDisplayable);        
    }

    protected void proceso() {
        
        RespuestaSW respuestaSW = new RespuestaSW();
        respuestaSW.toObject(result);                   
        if (respuestaSW.getObjWsData().getObjRequest().getStatus().compareTo("OK") == 0) {
            ContrasteRMS rms = new ContrasteRMS();
            Sincronizacion sincronizacion = (Sincronizacion)respuestaSW.getObjWsData().getObjResponse().getResponeData();            
            //Falta validar que sea una vez al dia
            if(rms.size()>0)
                rms.clear();            
            for (int i = 0; i < sincronizacion.getZonas().size(); i++) {                                
                Zona zona = (Zona)(sincronizacion.getZonas().elementAt(i));                                
                for (int j = 0; j < zona.getContrastes().size(); j++) {
                    Contraste contraste = (Contraste)zona.getContrastes().elementAt(j);                    
                    //System.out.println((j+1)+" "+contraste.getReporte());
                    String tipocontraste="";
                    if(contraste.getTipo()==1)
                        tipocontraste = "P";
                    else if(contraste.getTipo()==2)
                        tipocontraste = "A";                        
                    String tipomedidor="";
                    if(contraste.getCliente().getMedidor().getTipo()==1)
                        tipomedidor = "Electromecánico";
                    else if(contraste.getCliente().getMedidor().getTipo()==2)
                        tipomedidor = "Electrónico";                        
                    VisitaProgramada vp = new VisitaProgramada(contraste.getId(), 
                            zona.getAbreviatura(), tipocontraste, 
                            contraste.getReporte(), 
                            contraste.getCliente().getNombres(), 
                            contraste.getCliente().getMedidor().getSuministro(), 
                            tipomedidor, 
                            contraste.getCliente().getMedidor().getSerie(),
                            ""+contraste.getCliente().getMedidor().getAno(),  
                            "", "", "", "", "", "", "", "", "", "",0,0,
                            contraste.getCliente().getDireccion(),false);                     
                    rms.addVisita(vp);                            
                }                
            }            
            midlet.setDisplay(new LstMenu(midlet));
        } else {
            midlet.showInfo(respuestaSW.getObjWsData().getObjRequest().getMessaje(), previousDisplay);
        }
    }
    
}
